<template>
  <a-modal
    :visible="visible"
    @cancel="onClose"
    @close="onClose"
    :title="modalConfig.title"
    :mask-closable="false"
    unmount-on-close
    width="65vw"
  >
    <div class="rule-explain-modal">
      <rule-explanation v-for="(rule, index) in ruleExplainList" :key="index" :rule="rule" :level="1" />
    </div>

    <template #footer>
      <a-button @click="onClose"> 关闭 </a-button>
    </template>
  </a-modal>
</template>

<script setup lang="ts">
  import RuleExplanation from './rule-explanation.vue'

  import { ref } from 'vue'

  const ruleExplainList = [
    {
      content: '1、按月统计车辆在运营过程中产生的收入及支出，并核算车辆盈利情况（暂未包含长租）',
    },
    {
      content: '2、车辆固定支出包含：车辆购置费/借入费、购置税、购车其他费用（过户费、运输费、保证金、手续费）',
    },
    {
      content: '3、运营支出费用包含：车辆购置费/借入费、购置税、购车其他费用、保险费、保养费、运维费、年检费、报销单、付款单',
    },
    {
      content: '4、运营收入费用包含：订单下所有费项、违章代办费、车辆借出费、车辆处置费',
    },
    {
      content: '5、总盈利金额=当前最新总收入-总支出，不根据筛选条件变更',
    },
    {
      content: '6、盈利情况：',
      children: [
        {
          content: 'a.总盈利-车辆固定支出>=0时，状态为已盈利',
        },
        {
          content: 'b.总盈利-车辆固定支出<0时，状态为未盈利',
        },
      ],
    },
    {
      content: '7、根据筛选的月份统计数据',
      children: [
        {
          content: 'a.车辆盈利情况展示当前最新数据，不根据筛选变更',
        },
        {
          content: 'b.车辆固定支出：取费用的应结时间在筛选月份内的应付金额',
        },
        {
          content: 'c.车辆运营：取费用的应结时间在筛选月份内的应付金额',
        },
        {
          content: 'd.订单营收：根据时间筛选，找到费用的生成时间在所选月份内对应的订单，将订单下所有费项根据规则完成统计',
        },
      ],
    },
    {
      content: '8、车辆可能更换过多个门店，会根据车辆在每个门店的运营情况统计对应数据',
      children: [
        {
          content: 'a.车辆盈利情况及固定支出属于商户，不统计在单个门店上 ',
        },
        {
          content: 'b.订单营收，则统计在取车门店上',
        },
        {
          content: 'c.车辆运营，则统计在关联门店上',
        },
        {
          content: 'd.运营成本，则统计在费用产生门店上',
        },
      ],
    },
    {
      content: '9、预计利润：则统计所有结算状态下费项的总金额',
    },
    {
      content: '10、实际利润：则统计结算状态为已结算费项的总金额',
    },
    {
      content: '11、订单营收统计规则：',
      children: [
        {
          content: 'a.统计订单费用时，根据取车时间默认往后推一天计算，如订单取车时间为1月31日 12：00，统计订单金额时从2月1日起',
        },
        {
          content:
            'b.订单租赁周期不满一天时，则通过时租金*零散小时数计算，如设置超过8小时为1天，租赁周期为1天5小时，则租金为1天租金+5小时的租金',
        },
        {
          content: 'c.在用车中添加的车辆租金、保险费、手续费，默认同下单时的车辆租金、保险费、手续费叠加计算',
        },
        {
          content: 'd.订单中的车辆租金、保险费、佣金以及优惠费根据租赁周期平分至每一天，根据车辆在订单内的使用周期分别计算',
        },
        {
          content: 'e.订单用车中添加保险费，则以添加保险费的时间为开始时间，计算新添加保险费的每日金额，不是使用订单总周期计算',
        },
        {
          content: 'f.订单存在换车时，需根据每辆车在订单中的使用周期分别计算订单营收',
          children: [
            {
              content:
                'i.换车当天产生的车辆租金、保险费、佣金以及优惠费默认归换下车，其他费用则根据添加费用的时间判断，在换车前、换车时添加的费用则归换下车，换车后添加则归属换上车',
            },
            {
              content: 'ii.佣金是根据订单总租期（包含续租）平分计算，渠道订单线下续租不计算佣金',
            },
            {
              content: 'iii.上门送车费、夜间取车费默认归添加费用时使用的车辆',
            },
            {
              content: 'iv.上门取车费、夜间还车费、同城异店还车费、跨城异店换车费归属最终还车时使用的车辆',
            },
          ],
        },
        {
          content: 'g.订单存在续租时，根据续租添加的费用及续租周期分别计算',
          children: [
            {
              content:
                'i.如订单存在续租，续租前的车辆租金、保险费、优惠费则根据续租前的租赁周期平分，续租时添加的车辆租金、保险费、优惠费则根据对应的续租周期平分，而不是订单总租期',
            },
            {
              content: 'ii.存在多次续租，则分别计算续租周期的费用',
            },
          ],
        },
      ],
    },
    {
      content: '12、违章代办费=代办服务费-代办真实成本，当违章订单为商户处理时存在该费用',
    },
    {
      content: '13、统计营收成本时，取报销单、付款单下车辆、门店、费用发生时间符合筛选条件的费用总额',
    },
  ]

  const visible = ref(false)
  const modalConfig = ref({
    title: '单车核算统计规则',
  })

  const onClose = () => {
    visible.value = false
  }

  const open = () => {
    visible.value = true
  }

  defineExpose({
    open,
  })
</script>

<style scoped lang="less">
  .rule-explain-modal {
    max-height: 70vh;
    overflow-y: auto;
    padding: 0 8px;
  }
</style>
